package cn.itwen.star.graph.core.service;

import cn.itwen.star.graph.comfyui.client.pojo.ComfyuiTask;

public interface RedisService {

    /**
     * 添加任务到redis队列中
     * @param comfyuiTask
     * @return
     */

    ComfyuiTask addQueueTask(ComfyuiTask comfyuiTask);

    /**
     * 获取队列中的序号最小任务
     * @return
     */
    ComfyuiTask popQueueTask();

    /**
     * 缓存任务id和任务对象
     * @param promptId
     * @param comfyuiTask
     */
    void addStartedTask(String promptId,ComfyuiTask comfyuiTask);

    /**
     * 获取缓存的comfyui任务对象
     * @param promptId
     * @return
     */
    ComfyuiTask getStartedTask(String promptId);

    /**
     * 判断队列中是否有任务
     * @return
     */
    boolean hasQueueTask();

    /**
     * 取消任务
     * @param tempId
     * @return
     */
    ComfyuiTask cancelTask(String tempId);

    /**
     * 返回任务
     * @param comfyuiTask
     * @param index
     */
    void returnTask(ComfyuiTask comfyuiTask, Long index);

    Long proprityTask(String tempId);
}